﻿--- posixemulation.py	Sun Nov 10 17:12:47 2019 UTC
+++ posixemulation.py	Sun Nov 10 17:10:05 2019 UTC
@@ -46,15 +46,7 @@
                 dst = unicode(dst, sys.getfilesystemencoding())
             if _rename_atomic(src, dst):
                 return True
-            retry = 0
-            rv = False
-            while not rv and retry < 100:
-                rv = _MoveFileEx(src, dst, _MOVEFILE_REPLACE_EXISTING |
-                                 _MOVEFILE_WRITE_THROUGH)
-                if not rv:
-                    time.sleep(0.001)
-                    retry += 1
-            return rv
+            return _MoveFileEx(src, dst, _MOVEFILE_REPLACE_EXISTING | _MOVEFILE_WRITE_THROUGH)
 
         # new in Vista and Windows Server 2008
         _CreateTransaction = ctypes.windll.ktmw32.CreateTransaction
@@ -68,18 +60,11 @@
             if ta == -1:
                 return False
             try:
-                retry = 0
-                rv = False
-                while not rv and retry < 100:
-                    rv = _MoveFileTransacted(src, dst, None, None,
-                                             _MOVEFILE_REPLACE_EXISTING |
-                                             _MOVEFILE_WRITE_THROUGH, ta)
-                    if rv:
-                        rv = _CommitTransaction(ta)
-                        break
-                    else:
-                        time.sleep(0.001)
-                        retry += 1
+                rv = _MoveFileTransacted(src, dst, None, None,
+                                         _MOVEFILE_REPLACE_EXISTING |
+                                         _MOVEFILE_WRITE_THROUGH, ta)
+                if rv:
+                    rv = _CommitTransaction(ta)
                 return rv
             finally:
                 _CloseHandle(ta)
@@ -92,7 +77,7 @@
             return
         # Fall back to "move away and replace"
         try:
-            os.rename(src, dst)
+            shutil.move(src, dst)
         except OSError as e:
             if e.errno != errno.EEXIST:
                 raise
